export interface User {
  id: string
  name: string
  avatar: string
  role: "recruiter" | "candidate"
}

export interface Job {
  id: string
  title: string
  company: string
  location: string
  salary: string
  experience: string
  education: string
  type: string
  department?: string
  description: string
  requirements: string
  benefits: string[]
  status: "active" | "pending" | "closed" | "failed"
  views: number
  communications: number
  interested: number
  createdAt: string
  expiresAt: string
  urgent?: boolean
  featured?: boolean
}

export interface Candidate {
  id: string
  name: string
  avatar: string
  age: number
  gender: string
  experience: string
  education: string
  university: string
  currentPosition: string
  currentCompany: string
  currentLocation: string
  expectedSalary: string
  expectedPosition: string
  expectedLocation: string
  expectedIndustry: string
  jobStatus: string
  phone: string
  email: string
  profile: string
  workHistory: WorkExperience[]
  educationHistory: Education[]
  projects: Project[]
  skills: Skill[]
  isActive: boolean
  lastActive: string
}

export interface WorkExperience {
  id: string
  company: string
  position: string
  startDate: string
  endDate: string
  description: string
  achievements: string[]
}

export interface Education {
  id: string
  school: string
  degree: string
  major: string
  startDate: string
  endDate: string
  gpa?: string
  achievements: string[]
}

export interface Project {
  id: string
  name: string
  company: string
  startDate: string
  endDate: string
  description: string
  role: string
  achievements: string[]
}

export interface Skill {
  name: string
  level: number
  category: "professional" | "tool" | "language"
}

export interface Message {
  id: string
  senderId: string
  receiverId: string
  content: string
  type: "text" | "file" | "interview" | "system"
  timestamp: string
  read: boolean
  metadata?: any
}

export interface Conversation {
  id: string
  participants: string[]
  lastMessage: Message
  unreadCount: number
  jobId?: string
  candidateId?: string
}

export interface Filter {
  location?: string[]
  salary?: [number, number]
  experience?: string[]
  education?: string[]
  jobType?: string[]
  industry?: string[]
  companySize?: string[]
}
